import logging
import os
from logging.handlers import TimedRotatingFileHandler
from config import BASE_DIR

# def setup_class(self):
#     print("before every one for once")
#
# def teardown_class(self):
#     print("behind every on for once")
#
# def setup_method(self):
#     print("before 1")
#
# def teardown_method(self):
#     print("behind 1")

# 1. 创建 logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)  # ← 注意：这里用 DEBUG，而不是 logging.debug()

# 2. 创建控制台处理器
st = logging.StreamHandler()
st.setLevel(logging.INFO)

# 3. 创建按天切分的文件处理器
# 确保 logs 目录存在
os.makedirs(BASE_DIR + "logs", exist_ok=True)
file = BASE_DIR + "/logs/my_app.log"
fh = TimedRotatingFileHandler(
    filename=file,
    when="midnight",
    interval=1,
    backupCount=7,
    encoding="utf-8"
)  # 设置日志每晚0点更新，每天更新一次 保留最多七个日志记录
fh.setLevel(logging.DEBUG)
# 4. 设置格式 asctime为系统时间
fmt = logging.Formatter("%(asctime)s [%(levelname)s]  %(lineno)s行  %(message)s")
st.setFormatter(fmt)
fh.setFormatter(fmt)

# 5. 把处理器添加到 logger 这里的logger是控制整个文件目录的对象，handler中可以包括控制台对象，也可以包括log文件控制对象
# 需要将这两个对象添加到logger对象中使用
logger.addHandler(st)
logger.addHandler(fh)

# 6. 测试
logger.debug("这是一条 debug 日志")
logger.info("程序启动")
